The variable size of network packets such as Ethernet packets, for example, can cause unacceptable variations of packet delay for time-critical packets that caught behind long, lower-priority packets transmitted just prior to transmission of the time-critical packets. For some real-time control networks, transmission of time-critical packets is scheduled, and to guarantee transmission at the scheduled time, non-critical packets are prevented from occupying the link during the scheduled time. Interface standards, such as Ethernet, do not support parallel transmission of multiple frames on a single link. Therefore, the transmission scheduling mechanism must guarantee that any non-critical packet transmission is completed in advance of the time when a time-critical packet is scheduled.
In addition to transmission scheduling, preemption may also be used to alleviate the unacceptable variations of packet delay. For example, long, lower-priority packets can be interrupted in order to transmit the time-critical packets. To avoid waste of bandwidth, transmission of the long, lower-priority packets is resumed after transmitting the time-critical packets. A number of methods including low-level coding (e.g., at the line-code level), alternating cyclic redundancy check (“CRC”) schemes and encapsulation have been used to manage preemption. Encapsulation is a popular method because it is less complicated than low-level coding and alternating CRC schemes, but encapsulation increases the bandwidth of the network traffic by adding overhead. Further, every frame from one or more network traffic flows that can be preempted must be encapsulated, which adds to the overhead.